home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / SWDOS12 / FTIME.ASM < prev    next >
Assembly Source File  |  1995-02-10  |  2KB  |  75 lines

  1. ;******************************************************************
  2. ;*                            FTIME.ASM                           *
  3. ;*          Source file for SoftWeyr enhanced DOS toolbox         *
  4. ;*                           version 1.1                          *
  5. ;*                 Copyright (c) by SoftWeyr,1994                 *
  6. ;******************************************************************
  7. Model TPascal
  8. Locals
  9. .Data
  10.      EXTRN DosError :word
  11. Handle DW ?
  12. .Code
  13.        Public SetFileTime
  14.        Public GetFileTime
  15.        Extrn SetHandleTime :Far
  16.        Extrn GetHandleTime :far
  17.        Extrn Asciiz:Far
  18. SetFileTime   Proc Far FileName:Dword,DateTime:Dword
  19. ;Procedure SetFileTime(FileName:String;DateTime:LongInt);
  20.               CALL OpenFile
  21.               Cmp DosError,0
  22.               JC @@Exit
  23.               PUSH Handle
  24.               Call SetHandleTime
  25.               Call CloseFile
  26. @@Exit:       JC @@Error
  27.               XOR AX,AX
  28. @@Error:         CMP DosError,0
  29.               JnE @@Quit
  30.               MOV DosError,AX
  31. @@Quit:       RET
  32.              ENDP
  33. GetFileTime   Proc Far FileName:DWord,DateTime:DWord
  34. ;Procedure GetFileTime(FileName:String;var DateTime:LongInt);
  35.               CALL OpenFile
  36.               Cmp DosError,0
  37.               JC @@Exit
  38.               PUSH Handle
  39.               PUSH Word ptr DateTime[2]
  40.               PUSH Word Ptr DateTime[0]
  41.               Call GetHandleTime
  42.               Call CloseFile
  43. @@Exit:       JC @@Error
  44.               XOR AX,AX
  45. @@Error:     CMP DosError,0
  46.               JnE @@Quit
  47.               MOV DosError,AX
  48. @@Quit:       RET
  49.              ENDP
  50. OpenFile Proc Near
  51.                LOCAL AName:Byte:80=LSIZE
  52.                PUSH DS
  53.                LDS SI,[BP+10];Caller's FileName parameter
  54.                LEA DI,AName
  55.                CALL Asciiz
  56.                Lea dx,AName
  57.                PUSH SS
  58.                POP DS
  59.                mov ax,3D00H
  60.                Int 21h
  61.                POP DS
  62.                JC @@Error
  63.                MOV Handle,AX
  64.                SUB AX,AX
  65. @@Error:       MOV DosError,AX
  66.                Ret
  67. OpenFile      ENDP
  68. CLoseFile Proc Near
  69.               MOV BX,Handle
  70.               MOV AH,3EH
  71.               INT 21h
  72.             RET
  73. CloseFile ENdP
  74. END
  75.